7-48 将数倒置

# 7-48 将数倒置

分数 6 作者 c课程组 单位 湖南工程学院

输入一个四位数的正整数,请将其逆着输出来。

输入格式: 在一行中输入一个四位数的正整数。

输出格式: 在一行中依次输出个位数、十位数、百位数、千位数。(不管是否为0,都输出来,且中间无空格)

输入样例1: 2631

输出样例1: 1362

输入样例2: 2010

输出样例2: 0102

代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB

# 方法1—数组方法

#include <stdio.h>
int main(){
    char str[4]; // 对于这种具体要求的题目,使用数组更容易完成
    scanf("%s",&str);
    printf("%c%c%c%c",str[3],str[2],str[1],str[0]);
}
1
2
3
4
5
6

# 方法2—数学计算

#include <stdio.h>
#include <math.h>    //导入数学函数库
int main(void){
    int number;    //定义一个四位整数
    int unit, decade, hunders, kiobit;    //定义四位整数倒置后的个, 十, 百, 千位
    scanf("%d",&number);    //输入一个四位数
    if(number >= 1000 && number < 10000){//如果输入的数是四位数就执行if里面的语句
        // fmod(x, y)表示求(x / y)的余数
        kiobit = fmod(number,10);    //倒置后的千位
        hunders = (fmod(number,100) - fmod(number,10)) / 10;    //倒置后的百位
        decade = (fmod(number,1000) - fmod(number,100)) / 100;    //倒置后的十位
        unit = (number - fmod(number,1000)) / 1000;    //倒置后的个位
    }
    printf("%d%d%d%d", kiobit, hunders, decade, unit);    //依次输出倒置后的千,百,十,个位
    return 0;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

解题思路: step1:取出倒置后的千位 step2:取出倒置后的百位 step3:取出倒置后的十位 step4:取出倒置后的个位 step5:依次输出

归属知识点:

  1. 方法1: 数组的使用
  2. 方法2: 数学函数库 运算符的优先级 条件判断
最后编辑于: 4/3/2024, 10:05:27 PM